ARM: vGIC: cache virtual LPI priority in struct pending_irq
authorAndre Przywara <andre.przywara@arm.com>
Mon, 5 Sep 2016 12:46:37 +0000 (13:46 +0100)
committerStefano Stabellini <sstabellini@kernel.org>
Wed, 14 Jun 2017 18:38:37 +0000 (11:38 -0700)
commit9c34e21429ca31477fe234ee63e1cfde1de778d3
tree6bd547efe53c49d37e116bb56b7b28c03f48aa07
parent97b9b3250904992e053fc930ab16277f354b1e42
ARM: vGIC: cache virtual LPI priority in struct pending_irq

We enhance struct pending_irq to cache the priority information
for LPIs. Reading the information from there is faster than accessing
the property table from guest memory. Also it use some padding area in
the struct, so does not require more memory.
This introduces the function to retrieve the LPI priority as a vgic_ops.
Also this moves the vgic_get_virq_priority() call in
vgic_vcpu_inject_irq() to happen after the NULL check of the pending_irq
pointer, so we can rely on the pointer in the new function.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Julien Grall <julien.grall@arm.com>
xen/arch/arm/vgic-v2.c
xen/arch/arm/vgic-v3.c
xen/arch/arm/vgic.c
xen/include/asm-arm/vgic.h